package com.gyx.lottery.dao.mapper;

import com.gyx.lottery.dao.dataobject.WinningRecordDO;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface WinningRecordMapper {
    @Insert("<script> " +
            " insert into winning_record (activity_id,activity_name," +
            " prize_id,prize_name,prize_tier," +
            " winner_id,winner_name,winner_email,winner_phone_number," +
            " winning_time) values " +
            " <foreach  collection='items'  item='item' separator=',' index='index'> " +
            " (#{item.activityId},#{item.activityName}," +
            " #{item.prizeId},#{item.prizeName},#{item.prizeTier}," +
            " #{item.winnerId},#{item.winnerName},#{item.winnerEmail},#{item.winnerPhoneNumber}," +
            " #{item.winningTime})" +
            " </foreach>" +
            " </script>")
    void batchInsertWinner(@Param("items") List<WinningRecordDO> winningRecordDOList);
    @Select("select * from winning_record where activity_id=#{activityId}")
    List<WinningRecordDO> selectByActivityId(@Param("activityId") Long activityId);
    @Delete("delete from winning_record where activity_id=#{activityId} " +
            " and prize_id=#{prizeId}")
    void delete(@Param("activityId") Long activityId, @Param("prizeId")Long prizeId);
    @Select("select count(*) from winning_record where activity_id=#{activityId} " +
            " and prize_id=#{prizeId}")
    int countByActivityIdAndPrizeId(@Param("activityId") Long activityId, @Param("prizeId")Long prizeId);
    @Select(" <script>" +
            " select * from winning_record where activity_id=#{activityId} " +
            "  <if test=\"prizeId!=null\"> " +
            " and prize_id=#{prizeId} " +
            " </if>" +
            " </script> ")
    List<WinningRecordDO> selectByParam(@Param("activityId") Long activityId,@Param("prizeId") Long prizeId);

}
